Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как на C# сделать возврат в случае ошибки? Visual Studio 2008 
:(
    Опции темы
Xeim
Дата 16.9.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 17.11.2005

Репутация: нет
Всего: 0



Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Вариант 11");
            Console.WriteLine("");
            /* Написать программу вычисления сопрсотивления электрической цепи, состоящей из двух параллельно
             * соединенных сопростивлений. Ниже представлен рекомендуемый вид экрана во время работы программы
             * (данные, введенные пользователем, выделены полужирным шрифтом, приведены результаты контрльного примера).
             */
            Console.WriteLine("Задача 1");
            Console.WriteLine("Вычиеление сопростивления электрической цепи");
            Console.WriteLine("при параллельном соединении элементов.");
            Console.WriteLine("Введите исходные данные:");
            int r1;
            int r2;
            int R;
            Console.Write("Величина первого сопростивления (Ом): ");
            if (Int32.TryParse(Console.ReadLine(), out r1))
            {
                Console.Write("Величина второго сопростивления (Ом): ");
                if (Int32.TryParse(Console.ReadLine(), out r2))
                {
                    R = (r1 * r2) / (r1 + r2);
                    Console.WriteLine("Сопростивление цепи: " + R + " Ом.");
                }
                else
                {
                    Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
                    // !!!Отсюда надо бы перейти в начало программы, предварительно очистив экран
                }
            }
            else
            {
                Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
                // !!!Отсюда надо бы перейти в начало программы, предварительно очистив экран
            }
            Console.WriteLine("");
            Console.ReadKey();

            /* Написать программу, которая сравнивает два числа, введенных с клавиатуры. Программа должна указать,
             * какое число больше, или, если числа равны, вывести соответствующее сообщение. Ниже представлен
             * рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены жирными
             * шрифтом).
             */
            Console.WriteLine("Задача 2");
            // !!!Вот сюда <-
            int i1;
            int i2;
            int i;
            string OTN;
            string RAZ;
            OTN = "";
            RAZ = "";
            int V;
            Console.Write("Первое число: ");
            if (Int32.TryParse(Console.ReadLine(), out i1))
            {
                Console.Write("Второе число: ");
                if (Int32.TryParse(Console.ReadLine(), out i2))
                {
                    V = i1 - i2;
                    if (V == 0)
                    {
                        OTN = " равно ";
                    }
                    else if (V > 0)
                    {
                        OTN = " больше ";
                        RAZ = " на " + V + " единицы";
                    }
                    else if (V < 0)
                    {
                        OTN = " меньше ";
                        RAZ = " на " + (V * (-1)) + " единиц";
                    }
                    Console.WriteLine(i1 + OTN + i2 + RAZ);
                }
                else
                {
                    Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
                    // !!!Отсюда надо бы перейти в то место, где есть комментарий "!!!Вот сюда <-"
                }
            }
            else
            {
                Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
                // !!!Отсюда надо бы перейти в то место, где есть комментарий "!!!Вот сюда <-"
            }
            Console.ReadKey();
        }
    }
}


PM MAIL   Вверх
source777
Дата 16.9.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Ну тык, добро пожаловать в бесконечный цикл, continue приветствует тебя...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Xeim
Дата 16.9.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 17.11.2005

Репутация: нет
Всего: 0



Не понял  smile 
При чем тут цикл и continue?
PM MAIL   Вверх
Hades
Дата 16.9.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 8.8.2008

Репутация: 1
Всего: 37



Код

bool exit = true;

do
{
    Console.WriteLine("Вариант 11");
    Console.WriteLine("");
    /* Написать программу вычисления сопрсотивления электрической цепи, состоящей из двух па
     * соединенных сопростивлений. Ниже представлен рекомендуемый вид экрана во время работы
     * (данные, введенные пользователем, выделены полужирным шрифтом, приведены результаты к
     */
    Console.WriteLine("Задача 1");
    Console.WriteLine("Вычиеление сопростивления электрической цепи");
    Console.WriteLine("при параллельном соединении элементов.");
    Console.WriteLine("Введите исходные данные:");
    int r1;
    int r2;
    int R;
    Console.Write("Величина первого сопростивления (Ом): ");
    if (Int32.TryParse(Console.ReadLine(), out r1))
    {
        Console.Write("Величина второго сопростивления (Ом): ");
        if (Int32.TryParse(Console.ReadLine(), out r2))
        {
            R = (r1 * r2) / (r1 + r2);
            Console.WriteLine("Сопростивление цепи: " + R + " Ом.");
        }
        else
        {
            Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
            Console.Clear();
            continue;
            // !!!Отсюда надо бы перейти в начало программы, предварительно очистив экран
        }
    }
    else
    {
        Console.WriteLine("(X) Ошибка! Надо было ввести натуральное число.");
        Console.Clear();
        continue;
        // !!!Отсюда надо бы перейти в начало программы, предварительно очистив экран
    }

    exit = false;
} while(exit);

дальше аналогично

Это сообщение отредактировал(а) Hades - 16.9.2008, 23:05
PM MAIL   Вверх
Xeim
Дата 18.9.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 17.11.2005

Репутация: нет
Всего: 0



Мне еще про while подсказали. Как лучше?
PM MAIL   Вверх
source777
Дата 18.9.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



А как лучше:
читать книжку, пока не запомнишь
или
пока не запомнишь, читать книжку
?

В твоём случае это без разницы, но необходимо!


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.