Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2017, 01:02   #1
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию Работа с циклами в Java.

Условие - вывести в консоль количество введенных чисел. Цикл должен выполняться до введения отрицательного числа. Все числа целые.
Код:
import java.io.*;
import java.util.*;

public class Example {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		PrintStream out = System.out;

		int x = in.nextInt();
		int i = 0;
		
		while (x>=0) {
			i++;	
		}
		out.println(i);
	}
}
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось АлексейP; 22.10.2017 в 01:21.
АлексейP вне форума Ответить с цитированием
Старый 22.10.2017, 01:17   #2
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

После компиляции данного кода, консоль позволяет вводить любые целые числа и никак не реагирует на отрицательные числа.
АлексейP вне форума Ответить с цитированием
Старый 22.10.2017, 02:35   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Вы ведь делаете ввод только один раз, а в цикле x не изменяется..
Black Fregat вне форума Ответить с цитированием
Старый 22.10.2017, 10:44   #4
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Вы ведь делаете ввод только один раз, а в цикле x не изменяется..
А можно подробнее? Я же каждый раз ввожу, по сути, новое число, что и проверяет цикл. Разве нет?
АлексейP вне форума Ответить с цитированием
Старый 22.10.2017, 11:01   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
while (x>=0) {
			i++;	
		}
Когда закончится этот цикл, если x = 5?
p51x вне форума Ответить с цитированием
Старый 22.10.2017, 11:08   #6
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
while (x>=0) {
			i++;	
		}
Когда закончится этот цикл, если x = 5?
Кажется, я вообще не понял суть циклов.

Мое понимание: при введении пяти идет проверка по условию и, если оно верно, прибавляется единица к i, затем цикл прекращается и ждет введения нового числа.
АлексейP вне форума Ответить с цитированием
Старый 22.10.2017, 13:04   #7
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Someone, объясните, пожалуйста, в чем "неправильность моего понимания" по части циклов в Java.
АлексейP вне форума Ответить с цитированием
Старый 22.10.2017, 13:08   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от АлексейP Посмотреть сообщение
Кажется, я вообще не понял суть циклов.
Ну так возьмите любой учебник и почитайте главу про них.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.10.2017, 14:35   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от АлексейP Посмотреть сообщение
идет проверка по условию
Правильно
Цитата:
Сообщение от АлексейP Посмотреть сообщение
затем цикл прекращается
Неправильно

Цикл - он потому и цикл, что будет работать много раз, пока выполняется условие.
А раз x в теле цикла не меняется => условие выполнено всегда => цикл без конца


Цитата:
Сообщение от АлексейP Посмотреть сообщение
в чем "неправильность моего понимания"
Вы, похоже, путаете цикл и условный оператор. То, что Вы написали, скорее относится к условию if (x>=0)
Но даже если поставить if, ввод х выполнится только один раз
Black Fregat вне форума Ответить с цитированием
Старый 22.10.2017, 15:51   #10
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Правильно

Неправильно

Цикл - он потому и цикл, что будет работать много раз, пока выполняется условие.
А раз x в теле цикла не меняется => условие выполнено всегда => цикл без конца



Вы, похоже, путаете цикл и условный оператор. То, что Вы написали, скорее относится к условию if (x>=0)
Но даже если поставить if, ввод х выполнится только один раз
Я Вас понял. Тогда как нам изменять значение нашей переменной целого типа внутри цикла, учитывая, что объявить ее внутри тела цикла мы не можем, так как синтаксически появится ошибка из-за того, что в условии цикла мы будем проверять несуществующую переменную?
АлексейP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с циклами ... s88s PHP 8 11.02.2016 17:38
Работа с циклами в С++ Twinlamb Помощь студентам 1 23.12.2012 12:01
Работа с циклами Kazik Помощь студентам 3 06.05.2012 22:54
работа с циклами серг Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 22.04.2010 21:34
Работа с циклами. Надюха Помощь студентам 3 26.10.2007 09:29